#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSerialPort>
#include <QTimer>
#include <QDateTime>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow {
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();  // 槽函数，处理按钮点击事件
    void readSerialData();         // 槽函数，读取串口数据
    void updateReceiveArea(const QString &data);  // 更新接收区域
    void checkForNewLine();        // 检查是否需要换行

private:
    Ui::MainWindow *ui;
    QSerialPort serialPort;  // 用于管理串口通信的对象
    bool receivePaused = false;  // 是否暂停显示接收内容
    QString receiveBuffer;  // 用于存储接收的数据
    QDateTime lastTimestamp;  // 上一次接收数据的时间戳
    QTimer *newlineTimer;     // 用于检测换行的定时器

    void addSerialPortsToComboBox();  // 添加串口信息到 comboBox
    void processReceivedData();  // 处理接收到的数据
};

#endif // MAINWINDOW_H
